﻿#define _CRT_SECURE_NO_WARNINGS 1

// AOE还是单体？
//
//链接：https://ac.nowcoder.com/acm/problem/205048
//来源：牛客网
//
//题目描述
//牛可乐准备和 n 个怪物厮杀。已知第 i 个怪物的血量为ai。
//牛可乐有两个技能：
//第一个技能是蛮牛冲撞，消耗 1 mp  ，可以对任意单体怪物造成 1 点伤害。
//第二个技能是蛮牛践踏，消耗 𝑥 mp  ，可以对全体怪物造成 1 点伤害。
//牛可乐想知道，将这些怪物全部击杀，消耗mp  的最小值的多少？
//输入描述 :
//第一行两个正整数n  和x  ，分别代表怪物的数量、每次蛮牛践踏消耗的 mp  值。
//（ 1 ≤ n ≤ 200000， 1 ≤ x ≤ 10^9）
//第二行 n 个正整数ai，分别代表每个怪物的血量。
//（ 1 ≤ ai​ ≤ 10^9）
//输出描述 :
//一个正整数，代表消耗 mp 的最小值。
//示例1
//输入
//
//5 2
//2 4 5 6 3
//输出
//
//11
//说明
//先对3号怪物用1次蛮牛冲撞，对4号怪物用2次蛮牛冲撞，此时消耗mp为3，怪物的血量是2，4，4，4，3。
//然后用4次蛮牛践踏，击杀全部怪物，消耗的mp总量为11。



//贪心
//如果剩余怪物的数量大于x，选择AOE
//如果剩余怪物的数量小于等于x，选择单体
#include <iostream>
#include <algorithm>
using namespace std;

const int N = 2e5 + 10;
int n, x;
int a[N];
int main()
{
    cin >> n >> x;
    for (int i = 1; i <= n; i++) cin >> a[i];
    sort(a + 1, a + n + 1);

    int index = max(0, n - x);
    long long ret = a[index] * x;
    for (int i = index + 1; i <= n; i++)
    {
        a[i] -= a[index];
        ret += a[i];
    }
    cout << ret << endl;
    return 0;
}